package v1

import (
	"github.com/google/uuid"
	"github.com/gogf/gf/v2/frame/g"
	"github.com/gogf/gf-demo-user/v2/internal/model/entity"
)

type ScheduleMeReq struct {
	g.Meta   `path:"/schedule/me/company" method:"get" tags:"ScheduleService" summary:"检索面试申请的状态"`
}

type ScheduleUserReq struct {
	g.Meta   `path:"/schedule/me/user" method:"get" tags:"ScheduleService" summary:"检索认证用户的面试"`
}

type ScheduleReq struct {
	g.Meta   `path:"/schedule/company/{Schedule_id}" method:"get" tags:"ScheduleService" summary:"检索认证用户公司的面试。"`
	Schedule_id uuid.UUID `v:"required" in:"path"`
}

type SchedulePostReq struct {
	g.Meta   `path:"/schedule/application/{Application_id}" method:"post" tags:"ScheduleService" summary:"添加特定职位申请的面试"`
	Application_id string      `v:"required" in:"path"`
	Start_time uint      `v:"required"`
	End_time string     `v:"required"`
	Title string      `v:"required"`
	Company string     `v:"required"`
	Location string    `v:"required"`
	Link string      `v:"required"`
	Status string    `v:"required"`
}

type ScheduleUpReq struct {
	g.Meta   `path:"/schedule/{Schedule_id}" method:"patch" tags:"ScheduleService" summary:"根据面试ID更新特定的面试"`
	Schedule_id uuid.UUID      `v:"required" in:"path"`
	Start_time uint     `v:"required"`
	End_time string     `v:"required"`
	Title string      `v:"required"`
	Company string    `v:"required"`
	Location string    `v:"required"`
	Link string      `v:"required"`
	Status string    `v:"required"`
}
type ScheduleDeleReq struct {
	g.Meta   `path:"/schedule//{Schedule_id}" method:"delete" tags:"ScheduleService" summary:"根据面试ID删除特定的面试。"`
	Schedule_id  uuid.UUID      `v:"required" in:"path"`
}

type ScheduleMeUpReq struct {
	g.Meta   `path:"/schedule/{Schedule_id}" method:"patch" tags:"ScheduleService" summary:"检索面试申请的状态"`
	Schedule_id uuid.UUID      `v:"required" in:"path"`
	Start_time uint     `v:"required"`
	End_time string     `v:"required"`
	Title string      `v:"required"`
	Company string    `v:"required"`
	Location string    `v:"required"`
	Link string      `v:"required"`
	Status string    `v:"required"`
}
type ScheduleRes struct{
	*entity.Schedule
}

type ScheduleMeRes struct{
	*entity.Schedule
}

type ScheduleDeleRes struct{
}

type ScheduleChatMessageUpRes struct{
}

type ScheduleUpRes struct{
}

type SchedulePostRes struct{
}
